From 5f3f7962d5914af1e63298ff03cd6a4ca5247791 Mon Sep 17 00:00:00 2001 From: Gleb Kozyrev Date: Fri, 30 Oct 2015 13:18:19 +0200 Subject: [PATCH] Avoid overwriting the lockfile if there are no changes --- src/cargo/ops/lockfile.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/cargo/ops/lockfile.rs b/src/cargo/ops/lockfile.rs index da8aac7a1..3a0ef553f 100644 --- a/src/cargo/ops/lockfile.rs +++ b/src/cargo/ops/lockfile.rs @@ -68,6 +68,15 @@ pub fn write_lockfile(dst: &Path, resolve: &Resolve) -> CargoResult<()> { None => {} } + // Load the original lockfile if it exists. + if let Ok(orig) = paths::read(dst) { + if out == orig { + // The lockfile contents haven't changed so don't rewrite it. + // This is helpful on read-only filesystems. + return Ok(()) + } + } + try!(paths::write(dst, out.as_bytes())); Ok(()) } -- 2.30.2